home *** CD-ROM | disk | FTP | other *** search
- {BRIAN DHATT
-
- > Does anyone have codes/source For replacing GotoXY Procedure?
- }
- Asm
- MOV AH,$0F {To get active page, returns BH}
- INT $10
- MOV Page,BH
- end;
-
- Asm {to find current cursor pos in form XX,YY}
- MOV AH,$3 {Equiv of XX:=WhereX, YY:=WhereY }
- MOV BH,Page
- INT $10
- MOV YY,DH
- MOV XX,DL
- end;
-
- Asm {This block moves the cursor to }
- MOV AH,$02 {XX,YY just like GotoXY(XX,YY) }
- MOV BH,Page
- MOV DL,XX
- MOV DH,YY
- INT $10
- end;
-
- {
- GREG ESTABROOKS
-
- >Can someone tell me how to make the cursor in Turbo Pascal disappear and
- >appear?
- }
-
- Program CursorDemo; (* May 27/93, Greg Estabrooks *)
- Uses
- Crt; (* For ReadKey, ClrScr. *)
- Const
- (* Define Cursor Value to make chaning cursor easier *)
- NoCursor = $2000;
- DefaultCursor = $0607;
- BlockCursor = $000A;
- Var
- Curs : Word; (* Stores saved cursor value *)
- Ch : Char;
-
- Procedure SetCursor(Cursor : Word); Assembler;
- (* Routine to change the shape of the cursor *)
- Asm
- Mov AH,1 (* Function to change cursor shape *)
- Mov BH,0 (* Set Page to 0 *)
- Mov CX,Cursor (* Load new cursor Shape Value *)
- Int $10 (* Call Dos *)
- end;{SetCursor}
-
- Function GetCursor : Word; Assembler;
- (* Routine to return Cursor Shape *)
- Asm
- Mov AH,3 (* Function to return cursor shape *)
- Mov BH,0 (* Set Page to 0 *)
- Int $10 (* Call Dos *)
- Mov AX,CX (* Move Result to proper register *)
- end;{GetCursor}
-
- begin
- ClrScr; (* Clear the screen For demonstration*)
- Curs := GetCursor; (* Save Current Cursor Value *)
- Writeln('The Cursor is turned off');
- SetCursor( NoCursor ); (* Turn off the cursor *)
- Ch := ReadKey; (* Pause to show user new cursor *)
- Writeln('The Cursor is a block shape');
- SetCursor( BlockCursor ); (* Set the cursor to a block *)
- Ch := ReadKey;
- Writeln('The Cursor is now the normal shape');
- SetCursor( DefaultCursor ); (* Set Default Cursor *)
- Ch := ReadKey;
-
- SetCursor( Curs ); (* Restore cursor to previous style *)
- end.